home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.1 (Developer) [x86] / NeXT Step 3.1 Intel dev.cdr.dmg / NextDeveloper / Examples / AppKit / Draw / graphicsUndo.subproj / ChangeDetail.h < prev    next >
Text File  |  1992-03-15  |  3KB  |  157 lines

  1. /*
  2.  * Please refer to external documentation about Draw
  3.  * with Undo for information about what ChangeDetails 
  4.  * are and where they fit in.
  5.  *
  6.  * The ChangeDetail.h and ChangeDetail.m files contain
  7.  * the @interfaces and @implementations for the 11 
  8.  * subclasses of ChangeDetail, as well as for ChangeDetail
  9.  * itself. We grouped all the classes into one pair of 
  10.  * files because the classes are so tiny and their behavior
  11.  * is so similar.
  12.  *
  13.  * ChangeDetail
  14.  *     ArrowChangeDetail
  15.  *     DimensionsChangeDetail
  16.  *     FillColorChangeDetail
  17.  *     FillModeChangeDetail
  18.  *     LineCapChangeDetail
  19.  *     LineColorChangeDetail
  20.  *     LineJoinChangeDetail
  21.  *     LineWidthChangeDetail
  22.  *     MoveChangeDetail
  23.  *     OrderChangeDetail
  24.  * 
  25.  */
  26.  
  27. @interface ChangeDetail : Object
  28. {
  29.     Graphic    *graphic;     /* the Graphic that we serve */
  30.     id        change;         /* the Change object that we belong to */
  31.     List    *detailsDetails; /* If the Graphic that this ChangeDetail
  32.                       * serves is a Group then detailsDetails
  33.                   * is used to keep track of the
  34.                   * ChangeDetails that serve the component
  35.                   * Graphics of the Group.
  36.                   */
  37.     BOOL    changeExpected;
  38. }
  39.  
  40. - initGraphic:aGraphic change:aChange;
  41. - free;
  42. - graphic;
  43. - (BOOL)useNestedDetails;
  44. - (BOOL)changeExpected;
  45. - recordDetail;
  46. - undoDetail;
  47. - redoDetail;
  48. - recordIt;
  49. - undoIt;
  50. - redoIt;
  51.  
  52. @end
  53.  
  54. @interface ArrowChangeDetail : ChangeDetail
  55. {
  56.     int        oldLineArrow;
  57. }
  58.  
  59. - recordIt;
  60. - undoIt;
  61. - redoIt;
  62.  
  63. @end
  64.  
  65. @interface DimensionsChangeDetail : ChangeDetail
  66. {
  67.     NXRect     oldBounds;
  68.     NXRect     newBounds;
  69. }
  70.  
  71. - (BOOL)useNestedDetails;
  72. - recordDetail;
  73. - undoDetail;
  74. - redoDetail;
  75.  
  76. @end
  77.  
  78. @interface FillChangeDetail : ChangeDetail
  79. {
  80.     NXColor    oldFillColor;
  81.     int        oldFillMode;
  82.     NXColor    newFillColor;
  83.     int        newFillMode;
  84. }
  85.  
  86. - recordIt;
  87. - undoIt;
  88. - redoIt;
  89.  
  90. @end
  91.  
  92. @interface LineCapChangeDetail : ChangeDetail
  93. {
  94.     int        oldLineCap;
  95. }
  96.  
  97. - recordIt;
  98. - undoIt;
  99. - redoIt;
  100.  
  101. @end
  102.  
  103. @interface LineColorChangeDetail : ChangeDetail
  104. {
  105.     NXColor    oldColor;
  106.     BOOL    oldIsOutlined;
  107. }
  108.  
  109. - recordIt;
  110. - undoIt;
  111. - redoIt;
  112.  
  113. @end
  114.  
  115. @interface LineJoinChangeDetail : ChangeDetail
  116. {
  117.     int        oldLineJoin;
  118. }
  119.  
  120. - recordIt;
  121. - undoIt;
  122. - redoIt;
  123.  
  124. @end
  125.  
  126. @interface LineWidthChangeDetail : ChangeDetail
  127. {
  128.     float    oldLineWidth;
  129. }
  130.  
  131. - recordIt;
  132. - undoIt;
  133. - redoIt;
  134.  
  135. @end
  136.  
  137. @interface MoveChangeDetail : ChangeDetail
  138. {
  139. }
  140.  
  141. - (BOOL)useNestedDetails;
  142. - undoDetail;
  143. - redoDetail;
  144.  
  145. @end
  146.  
  147. @interface OrderChangeDetail : ChangeDetail
  148. {
  149.     unsigned    graphicPosition;
  150. }
  151.  
  152. - (BOOL)useNestedDetails;
  153. - recordGraphicPositionIn:graphicList;
  154. - (unsigned)graphicPosition;
  155.  
  156. @end
  157.